package com.frogs.ucenter.service;

import java.math.BigDecimal;
import java.util.Map;

import com.frogs.framework.util.PageList;
import com.frogs.ucenter.entity.UserRechargeRecord;

public interface UserRechargeService {

	/**
	 * 创建一条充值记录
	 * 
	 * @param userId
	 * @param rechargeMoney
	 * @param rechargeCard
	 * @param rechargeFrom
	 * @param verify
	 * @return
	 * @throws Exception 
	 */
	UserRechargeRecord addUserRechargeRecord(Integer userId, BigDecimal rechargeMoney, String rechargeCard,
			String rechargeFrom, String verify) throws Exception;

	/**
	 * 获取充值记录列表
	 * 
	 * @param userId
	 * @param pageNo
	 * @param pageSize
	 * @param verify
	 * @return
	 * @throws Exception
	 */
	PageList<Map<String,Object>> getUserRechargeRecordList(Integer userId, Integer pageNo, Integer pageSize,
			String verify) throws Exception;

	/**
	 * 获取充值记录信息
	 * 
	 * @param userId
	 * @param recordId
	 * @param verify
	 * @return
	 * @throws Exception
	 */
	UserRechargeRecord getUserRechargeRecordInfo(Integer userId, Integer recordId, String verify)
			throws Exception;

	/**
	 * 获取用户余额
	 * 
	 * @param userId
	 * @param verify
	 * @return
	 * @throws Exception
	 */
	String getUserBalanceInfo(Integer userId, String verify) throws Exception;

	/**
	 * 获取余额消费记录列表
	 * 
	 * @param userId
	 * @param pageNo
	 * @param pageSize
	 * @param verify
	 * @return
	 * @throws Exception
	 */
	PageList<Map<String, Object>> getUserConsumeRecordList(Integer userId, Integer pageNo,
			Integer pageSize, String verify) throws Exception;

	/**
	 * 更新充值记录
	 * 
	 * @param recordId
	 * @param userId
	 * @param rechargeMoney
	 * @param rechargeCard
	 * @param rechargeFrom
	 * @param verify
	 * @return
	 * @throws Exception
	 */
	UserRechargeRecord updateUserRechargeRecord(Integer recordId, Integer userId,
			BigDecimal rechargeMoney, String rechargeCard, String rechargeFrom, String verify)
			throws Exception;

	/**
	 * 验证用户余额
	 * 
	 * @param userId
	 * @param verify
	 * @return
	 * @throws Exception
	 */
	Boolean verifyUserBalance(Integer userId, String verify) throws Exception;

}
